<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta name="baidu-site-verification" content="codeva-jBeFpiMcNL" />
  <meta name="robots" content="index, follow, noimageindex">
  <meta property="og:image" content="https://www.wanzhiju.cn/favicon.png">
  <meta name="description" content="贵州万智聚规划管理 - 企业体系化课程设计，从战略思维到落地执行全覆盖">
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>贵州万智聚规划管理</title>
  <style>
    /* rem scaling */
    html { font-size: calc(100vw / 19.2); }
    body { font-size: 0.16rem; }
    @media (min-width: 2560px) { html { font-size: 133.33px; } }
    @media (max-width: 768px) { html { font-size: 100px; } }

    * { margin: 0; padding: 0; box-sizing: border-box; }
    body { min-width: 12rem; font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Helvetica Neue", sans-serif; color: #333; }
    a { text-decoration: none; color: inherit; }
    ul { list-style: none; }

    /* ===== 导航 ===== */
    .nav { position: sticky; top: 0; width: 100%; z-index: 1000; background: #0a1033; height: 0.6rem; }
    .nav-inner { max-width: 12rem; margin: 0 auto; padding: 0 0.2rem; display: flex; align-items: center; justify-content: space-between; height: 100%; }
    .nav-logo { display: flex; align-items: center; gap: 0.03rem; flex-shrink: 0; }
    .nav-logo img { height: 0.4rem; }
    .nav-logo span { color: #fff; font-size: 0.18rem; font-weight: 700; }
    .nav-links { display: flex; align-items: center; gap: 0.28rem; }
    .nav-links a { color: rgba(255,255,255,0.7); font-size: 0.14rem; transition: color 0.3s; position: relative; padding: 0.18rem 0; white-space: nowrap; }
    .nav-links a:hover, .nav-links a.active { color: #fff; }
    .nav-links a.active::after { content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 2px; background: #3b82f6; }
    .nav-btn { background: transparent; border: 1px solid #3b82f6; color: #3b82f6; padding: 0.08rem 0.2rem; border-radius: 0.04rem; font-size: 0.14rem; cursor: pointer; transition: all 0.3s; white-space: nowrap; flex-shrink: 0; }
    .nav-btn:hover { background: #3b82f6; color: #fff; }

    /* ===== 轮播 ===== */
    .banner { position: relative; height: 7.4rem; overflow: hidden; background: #0a1033; }
    .banner-viewport { position: relative; width: 100%; height: 100%; }
    .banner-slide { position: absolute; width: 55%; height: 80%; top: 10%; left: 22.5%; border-radius: 0.1rem; overflow: hidden; transition: all 0.6s cubic-bezier(0.4, 0, 0.2, 1); opacity: 0; pointer-events: none; will-change: transform, opacity; }
    .banner-slide img { width: 100%; height: 100%; object-fit: cover; user-select: none; -webkit-user-drag: none; }
    .banner-slide.center { opacity: 1; transform: translateX(0) scale(1); z-index: 3; pointer-events: auto; box-shadow: 0 0.08rem 0.3rem rgba(0,0,0,0.5); }
    .banner-slide.left { opacity: 0.7; transform: translateX(-60%) scale(0.85); z-index: 2; filter: blur(0.04rem) brightness(0.6); }
    .banner-slide.right { opacity: 0.7; transform: translateX(60%) scale(0.85); z-index: 2; filter: blur(0.04rem) brightness(0.6); }
    .banner-slide.far-left { opacity: 0; transform: translateX(-130%) scale(0.6); z-index: 1; }
    .banner-slide.far-right { opacity: 0; transform: translateX(130%) scale(0.6); z-index: 1; }
    .banner-arrow { position: absolute; top: 50%; transform: translateY(-50%); z-index: 10; width: 0.56rem; height: 0.56rem; border-radius: 50%; background: rgba(255,255,255,0.15); backdrop-filter: blur(0.04rem); border: 1px solid rgba(255,255,255,0.2); color: #fff; font-size: 0.24rem; cursor: pointer; transition: all 0.3s; display: flex; align-items: center; justify-content: center; user-select: none; }
    .banner-arrow:hover { background: rgba(255,255,255,0.3); }
    .banner-arrow.prev { left: calc(22.5% - 0.3rem); }
    .banner-arrow.next { right: calc(22.5% - 0.3rem); }
    .banner-default { display: flex; align-items: center; justify-content: center; height: 100%; }
    .banner-default h2 { color: rgba(255,255,255,0.5); font-size: 0.3rem; }
    .banner-dots { position: absolute; bottom: 0.16rem; left: 50%; transform: translateX(-50%); display: flex; gap: 0.08rem; z-index: 10; }
    .banner-dots .dot { width: 0.28rem; height: 0.03rem; background: rgba(255,255,255,0.3); border-radius: 2px; cursor: pointer; transition: all 0.3s; }
    .banner-dots .dot.active { background: #fff; width: 0.36rem; }

    /* ===== 搜索 ===== */
    .search-section { padding: 0.4rem 0.2rem; }
    .search-box { max-width: 6rem; margin: 0 auto; display: flex; gap: 0.12rem; }
    .search-box input { flex: 1; padding: 0.12rem 0.2rem; border: 1px solid #ddd; border-radius: 0.04rem; font-size: 0.14rem; outline: none; transition: border-color 0.3s; }
    .search-box input:focus { border-color: #3b82f6; }
    .search-box input::placeholder { color: #aaa; }
    .search-box button { padding: 0.12rem 0.3rem; background: #0a1033; color: #fff; border: none; border-radius: 0.04rem; font-size: 0.14rem; cursor: pointer; transition: background 0.3s; white-space: nowrap; }
    .search-box button:hover { background: #1a2050; }

    /* ===== 产品矩阵 ===== */
    .products-section { padding: 0.5rem 0.2rem 0.6rem; }
    .products-wrapper { max-width: 12rem; margin: 0 auto; padding: 0; }
    .products-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 0.3rem; }
    .products-header h2 { font-size: 0.26rem; color: #1a1a2e; margin-bottom: 0.08rem; }
    .products-header .sub { color: #888; font-size: 0.14rem; }
    .products-header .more { color: #3b82f6; font-size: 0.13rem; cursor: pointer; white-space: nowrap; }
    .products-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.2rem; }
    .product-card { background: #fff; border-radius: 0.12rem; padding: 0.28rem 0.24rem; text-align: left; transition: all 0.3s; cursor: pointer; border: 1px solid #eef2ff; display: flex; flex-direction: column; min-height: 1.8rem; }
    .product-card:hover { box-shadow: 0 0.08rem 0.28rem rgba(59,130,246,0.12); transform: translateY(-0.03rem); border-color: #3b82f6; }
    .product-meta { display: flex; flex-direction: column; gap: 0.1rem; margin-bottom: 0.16rem; }
    .product-meta-item { display: flex; align-items: center; gap: 0.08rem; font-size: 0.14rem; color: #64748b; line-height: 1.5; }
    .product-meta-item .meta-icon { font-size: 0.15rem; flex-shrink: 0; }
    .product-link { display: inline-flex; align-items: center; gap: 0.04rem; color: #3b82f6; font-size: 0.13rem; font-weight: 500; margin-top: auto; transition: gap 0.3s; }
    .product-card:hover .product-link { gap: 0.08rem; }
    .product-cover { width: 100%; aspect-ratio: 16/9; border-radius: 0.08rem; overflow: hidden; margin-bottom: 0.16rem; }
    .product-cover img { width: 100%; height: 100%; object-fit: cover; }
    .product-card h3 { font-size: 0.17rem; color: #1a1a2e; margin-bottom: 0.16rem; font-weight: 700; line-height: 1.4; }
    

    /* ===== 数据统计 ===== */
    .stats-section { padding: 0.5rem 0.2rem; }
    .stats-grid { max-width: 9rem; margin: 0 auto; display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.2rem; text-align: center; }
    .stat-item .number { font-size: 0.42rem; font-weight: 700; color: #0a1033; }
    .stat-item .number span { color: #3b82f6; }
    .stat-item .label { font-size: 0.13rem; color: #888; margin-top: 0.08rem; }

    /* ===== 动态更新 ===== */
    .news-section { padding: 0.6rem 0.2rem 0.8rem; max-width: 12rem; margin: 0 auto; }
    .news-header { display: flex; align-items: center; margin-bottom: 0.3rem; }
    .news-header .bar { width: 0.04rem; height: 0.28rem; background: #0a1033; border-radius: 2px; margin-right: 0.12rem; }
    .news-header h2 { font-size: 0.26rem; color: #1a1a2e; }
    .news-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.24rem; }
    .news-card { background: #fff; border-radius: 0.08rem; overflow: hidden; box-shadow: 0 2px 0.12rem rgba(0,0,0,0.06); transition: transform 0.3s, box-shadow 0.3s; }
    .news-card:hover { transform: translateY(-0.03rem); box-shadow: 0 0.06rem 0.2rem rgba(0,0,0,0.1); }
    .news-img { height: 1.8rem; overflow: hidden; background: #e8f0fe; display: flex; align-items: center; justify-content: center; }
    .news-img img { width: 100%; height: 100%; object-fit: cover; }
    .news-img .placeholder { font-size: 0.36rem; }
    .news-body { padding: 0.16rem 0.18rem; }
    .news-meta { display: flex; gap: 0.12rem; margin-bottom: 0.08rem; font-size: 0.12rem; color: #aaa; }
    .news-meta .tag { background: #eef2ff; color: #3b82f6; padding: 2px 0.08rem; border-radius: 0.03rem; font-size: 0.11rem; }
    .news-body h3 { font-size: 0.15rem; color: #1a1a2e; margin-bottom: 0.08rem; line-height: 1.4; font-weight: 600; }
    .news-body p { font-size: 0.13rem; color: #888; line-height: 1.6; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

    /* ===== 页脚 ===== */
    .footer { background: #0a1033; color: rgba(255,255,255,0.7); padding: 0.5rem 0.2rem 0.3rem; }
    .footer-inner { max-width: 12rem; margin: 0 auto; }
    .footer-top { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr auto; gap: 0.4rem; margin-bottom: 0.4rem; }
    .footer-brand .logo { display: flex; align-items: center; gap: 0.08rem; margin-bottom: 0.16rem; }
    .footer-brand p { font-size: 0.13rem; line-height: 1.8; color: rgba(255,255,255,0.5); }
    .footer-brand .social { display: flex; gap: 0.12rem; margin-top: 0.16rem; }
    .footer-brand .social a { width: 0.32rem; height: 0.32rem; border: 1px solid rgba(255,255,255,0.2); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 0.14rem; transition: all 0.3s; }
    .footer-brand .social a:hover { border-color: #3b82f6; background: #3b82f6; }
    .footer-col h4 { color: #e74c3c; font-size: 0.14rem; margin-bottom: 0.16rem; font-weight: 600; }
    .footer-col ul li { margin-bottom: 0.1rem; }
    .footer-col ul li a { font-size: 0.13rem; color: rgba(255,255,255,0.5); transition: color 0.3s; }
    .footer-col ul li a:hover { color: #fff; }
    .footer-bottom { border-top: 1px solid rgba(255,255,255,0.08); padding-top: 0.2rem; display: flex; justify-content: space-between; font-size: 0.12rem; color: rgba(255,255,255,0.3); }

    /* ===== 空状态 ===== */
    .empty { text-align: center; padding: 0.4rem; color: #ccc; grid-column: 1 / -1; }
    .empty .icon { font-size: 0.4rem; margin-bottom: 0.1rem; }
  
    /* ===== 移动端适配 ===== */
    @media screen and (max-width: 768px) {
      body { min-width: unset !important; width: 100%; overflow-x: hidden; }

      /* 导航 */
      .nav { min-width: unset; height: auto; }
      .nav-inner { padding: 10px 12px; flex-wrap: wrap; gap: 8px; }
      .nav-logo { order: 1; }
      .nav-logo span { font-size: 16px; }
      .nav-btn { order: 2; margin-left: auto; padding: 5px 12px; font-size: 12px; }
      .nav-links { order: 3; width: 100%; gap: 10px; overflow-x: auto; -webkit-overflow-scrolling: touch; }
      .nav-links a { font-size: 12px; padding: 6px 0; white-space: nowrap; }

      /* 轮播海报 */
      .banner { height: 240px; min-width: unset; }
      .banner-slide {
        width: 82%;
        left: 9%;
        height: 78%;
        top: 11%;
        border-radius: 8px;
      }
      .banner-slide.center { transform: translateX(0) scale(1); }
      .banner-slide.left {
        transform: translateX(-65%) scale(0.78);
        opacity: 0.4;
        filter: blur(2px) brightness(0.5);
      }
      .banner-slide.right {
        transform: translateX(65%) scale(0.78);
        opacity: 0.4;
        filter: blur(2px) brightness(0.5);
      }
      .banner-slide.far-left { transform: translateX(-140%) scale(0.5); opacity: 0; }
      .banner-slide.far-right { transform: translateX(140%) scale(0.5); opacity: 0; }
      .banner-arrow { width: 34px; height: 34px; font-size: 16px; }
      .banner-arrow.prev { left: 6px; }
      .banner-arrow.next { right: 6px; }
      .banner-dots { bottom: 8px; }
      .banner-dots .dot { width: 20px; height: 2px; }
      .banner-dots .dot.active { width: 28px; }

      /* 搜索 */
      .search-section { padding: 24px 12px; }
      .search-box { flex-direction: column; gap: 8px; }
      .search-box input, .search-box button { width: 100%; }

      /* 产品矩阵 */
      .products-section { padding: 30px 12px 40px; }
      .products-wrapper { padding: 0; }
      .products-header h2 { font-size: 19px; }
      .products-grid { grid-template-columns: 1fr; gap: 14px; }
      .product-card { padding: 22px 18px; min-height: auto; }
      .product-card h3 { font-size: 15px; margin-bottom: 12px; }


      /* 数据统计 */
      .stats-section { padding: 30px 12px; }
      .stats-grid { grid-template-columns: repeat(2, 1fr); gap: 16px; }
      .stat-item .number { font-size: 28px; }
      .stat-item .label { font-size: 12px; }

      /* 动态 */
      .news-section { padding: 30px 12px 40px; }
      .news-header h2 { font-size: 19px; }
      .news-grid { grid-template-columns: 1fr; gap: 14px; }
      .news-img { height: 160px; }
      .news-body h3 { font-size: 14px; }

      /* 页脚 */
      .footer { min-width: unset; padding: 30px 12px 20px; }
      .footer-top { grid-template-columns: 1fr; gap: 20px; }
      .footer-brand p { font-size: 12px; }
      .footer-col h4 { font-size: 13px; margin-bottom: 10px; }
      .footer-col ul li a { font-size: 12px; }
      .footer-bottom { flex-direction: column; gap: 6px; text-align: center; font-size: 11px; }
    }

  
    /* === Footer === */
    .footer { background: #0a1033; padding: 0.5rem 0.2rem 0.3rem; color: rgba(255,255,255,0.6); font-size: 0.13rem; }
    .footer-inner { max-width: 12rem; margin: 0 auto; }
    .footer-top { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr auto; gap: 0.4rem; margin-bottom: 0.4rem; }
    .footer-brand .logo { display: flex; align-items: center; gap: 0.08rem; margin-bottom: 0.16rem; }
    .footer-brand .logo span { color: #fff; font-size: 0.16rem; font-weight: 700; }
    .footer-brand .year { color: #3b82f6; margin-left: 0.04rem; }
    .footer-brand p { line-height: 1.8; margin-bottom: 0.16rem; }
    .footer-brand .social { display: flex; gap: 0.12rem; }
    .footer-brand .social a { width: 0.36rem; height: 0.36rem; border-radius: 50%; background: rgba(255,255,255,0.08); display: flex; align-items: center; justify-content: center; font-size: 0.16rem; text-decoration: none; transition: background 0.3s; }
    .footer-brand .social a:hover { background: rgba(255,255,255,0.15); }
    .footer-col h4 { color: #fff; font-size: 0.15rem; margin-bottom: 0.16rem; }
    .footer-col ul { list-style: none; padding: 0; margin: 0; }
    .footer-col ul li { margin-bottom: 0.1rem; }
    .footer-col ul li a { color: rgba(255,255,255,0.5); font-size: 0.13rem; text-decoration: none; transition: color 0.3s; }
    .footer-col ul li a:hover { color: #fff; }
    .footer-bottom { border-top: 1px solid rgba(255,255,255,0.08); padding-top: 0.2rem; display: flex; justify-content: space-between; align-items: center; font-size: 0.12rem; color: rgba(255,255,255,0.3); flex-wrap: wrap; gap: 0.08rem; }
    .footer-bottom a { color: rgba(255,255,255,0.4); text-decoration: none; }
    .footer-bottom a:hover { color: rgba(255,255,255,0.6); }
    @media screen and (max-width: 768px) {
      .footer { padding: 30px 16px 20px; }
      .footer-top { grid-template-columns: 1fr 1fr; gap: 24px; }
      .footer-bottom { flex-direction: column; text-align: center; }
    }
    @media screen and (max-width: 480px) {
      .footer-top { grid-template-columns: 1fr; gap: 20px; }
    }


    
    /* === Unified Footer Styles (injected) === */
    .footer-qrcode { text-align: center; min-width: 0.88rem; }
    .footer-qrcode .qrcode-img, #foot_qrcode { width: 0.88rem; height: 0.88rem; border-radius: 0.06rem; border: 2px solid rgba(255,255,255,0.1); object-fit: cover; }
    .footer-qrcode .qrcode-label { font-size: 0.12rem; color: rgba(255,255,255,0.4); margin-top: 0.08rem; }
    .footer-bottom { display: block !important; text-align: center; border-top: 1px solid rgba(255,255,255,0.08); padding-top: 0.24rem; margin-top: 0.4rem; font-size: 0.12rem; color: rgba(255,255,255,0.3); }
    .fbot-row { margin-bottom: 0.08rem; }
    .fbot-row:last-child { margin-bottom: 0; }
    .fbot-links a, .footer-bottom a { color: rgba(255,255,255,0.4); text-decoration: none; transition: color 0.3s; }
    .fbot-links a:hover, .footer-bottom a:hover { color: rgba(255,255,255,0.7); }
    .fbot-sep, .fbot-beian-sep { margin: 0 0.1rem; color: rgba(255,255,255,0.15); }
    .fbot-beian { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 0.04rem; }
    .fbot-beian a { display: inline-flex; align-items: center; gap: 0.04rem; color: rgba(255,255,255,0.4); text-decoration: none; }
    .fbot-beian a:hover { color: rgba(255,255,255,0.7); }

    
    /* ===== 导师团队 ===== */
    .team-section { padding: 0.6rem 0.2rem; background: #f8fafc; }
    .team-inner { max-width: 12rem; margin: 0 auto; }
    .team-header { display: flex; align-items: center; margin-bottom: 0.3rem; }
    .team-header .bar { width: 0.04rem; height: 0.28rem; background: #0a1033; border-radius: 2px; margin-right: 0.12rem; }
    .team-header h2 { font-size: 0.26rem; color: #1a1a2e; margin: 0; }
    .team-header .more { margin-left: auto; color: #3b82f6; font-size: 0.13rem; text-decoration: none; white-space: nowrap; }
    .team-grid-home { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.24rem; }
    .team-card-home { background: #fff; border-radius: 0.12rem; padding: 0.32rem 0.2rem; text-align: center; border: 1px solid #eef2ff; transition: all 0.3s; cursor: pointer; }
    .team-card-home:hover { box-shadow: 0 0.08rem 0.28rem rgba(59,130,246,0.12); transform: translateY(-0.03rem); border-color: #3b82f6; }
    .team-card-home .avatar { width: 0.8rem; height: 0.8rem; border-radius: 50%; background: linear-gradient(135deg, #3b82f6, #8b5cf6); color: #fff; font-size: 0.28rem; font-weight: bold; display: flex; align-items: center; justify-content: center; margin: 0 auto 0.16rem; overflow: hidden; }
    .team-card-home h4 { font-size: 0.16rem; color: #1a1a2e; margin: 0 0 0.04rem; font-weight: 600; }
    .team-card-home .role { font-size: 0.13rem; color: #3b82f6; margin-bottom: 0.12rem; }
    .team-card-home p { font-size: 0.13rem; color: #888; line-height: 1.6; margin: 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
    @media screen and (max-width: 768px) {
      .team-section { padding: 30px 12px; }
      .team-header h2 { font-size: 19px; }
      .team-grid-home { grid-template-columns: repeat(2, 1fr); gap: 14px; }
      .team-card-home { padding: 20px 14px; }
      .team-card-home .avatar { width: 60px; height: 60px; font-size: 22px; }
      .team-card-home h4 { font-size: 14px; }
    }

.stat-unit{font-size:0.5em;font-weight:400;opacity:0.7;margin-left:2px;}
    </style>
  <link rel="icon" href="/favicon.jpg" type="image/jpeg">
  <link rel="icon" href="/favicon.png" type="image/png">
</head>
<body>

  <!-- 导航 -->
  <nav class="nav">
    <div class="nav-inner">
      <a href="/" class="nav-logo">
        <img src="/server/white-logo.png" alt="Logo">
        <span>万智聚规划管理</span>
      </a>
      <div class="nav-links">
        <a href="/" class="active">首页</a>
        <a href="/about">关于我们</a>
        <a href="/products">课程中心</a>
        <a href="/cases">学员中心</a>
        <a href="/news">新闻动态</a>
        <a href="/jobs">人才招聘</a>
        <a href="/contact">联系我们</a>
      </div>
      <a href="/contact" class="nav-btn">立即咨询</a>
    </div>
  </nav>

  <!-- 轮播 -->
  <section id="home" class="banner">
    <div class="banner-viewport" id="bannerContainer">
      <div class="banner-default"><h2>轮播图</h2></div>
    </div>
    <button class="banner-arrow prev" onclick="slideNav(-1)">&#10094;</button>
    <button class="banner-arrow next" onclick="slideNav(1)">&#10095;</button>
    <div class="banner-dots" id="bannerDots"></div>
  </section>

  <!-- 搜索 -->
  <div class="search-section">
    <div class="search-box">
      <input type="text" id="searchInput" placeholder="输入您想要搜索的内容" onkeydown="if(event.key==='Enter')doSearch()">
      <button onclick="doSearch()">搜索</button>
    </div>
  </div>

  <!-- 产品矩阵 -->
  <section id="products" class="products-section">
    <div class="products-wrapper">
      <div class="products-header">
        <div>
          <h2>近期课程</h2>
          <p class="sub">体系化课程设计，从战略思维到落地执行全覆盖</p>
        </div>
        <a href="/products" class="more" style="text-decoration:none;">查看全部课程 →</a>
      </div>
      <div class="products-grid" id="productList">
        <div class="empty"><div class="icon">📦</div><p>加载中...</p></div>
      </div>
    </div>
  </section>

  <!-- 数据统计 -->
  <section class="stats-section">
    <div class="stats-grid">
      <div class="stat-item">
        <div class="number" id="stat1">270<span>+</span></div>
        <div class="label">企业《规划管理》课程</div>
      </div>
      <div class="stat-item">
        <div class="number" id="stat2">390<span>+</span></div>
        <div class="label">覆盖专业课程领域</div>
      </div>
      <div class="stat-item">
        <div class="number" id="stat3">3000<span>+</span></div>
        <div class="label">企业提供定制化规划服务</div>
      </div>
      <div class="stat-item">
        <div class="number" id="stat4">40000<span>+</span></div>
        <div class="label">人次提供一对一咨询服务</div>
      </div>
    </div>
  </section>


  <!-- 导师团队 -->
  <section class="team-section">
    <div class="team-inner">
      <div class="team-header">
        <div class="bar"></div>
        <h2>导师团队</h2>
        <a href="/about" class="more">查看全部 →</a>
      </div>
      <div class="team-grid-home" id="teamGrid">
        <div class="empty"><div class="icon">👨‍🏫</div><p>加载中...</p></div>
      </div>
    </div>
  </section>

  <!-- 动态更新 -->
  <section id="news" class="news-section">
    <div class="news-header">
      <div class="bar"></div>
      <h2>动态更新</h2>
    </div>
    <div class="news-grid" id="newsList">
      <div class="empty"><div class="icon">📰</div><p>加载中...</p></div>
    </div>
  </section>

  <!-- 页脚 -->
  <footer class="footer">
    <div class="footer-inner">
      <div class="footer-top">
        <div class="footer-brand">
          <div class="logo">
            <img src="/server/white-logo.png" alt="Logo" style="height:0.24rem;">
            <span>万智聚规划管理<span class="year">2026</span></span>
          </div>
          <p>在 2026 年，我们重新定义企业数字化转型的可能性，融合深厚的文化底蕴与领域的前沿科技，助力企业全方位赋能。</p>
          <div class="social">
            <a href="#">📱</a>
            <a href="#">💬</a>
            <a href="#">🔗</a>
          </div>
        </div>
        <div class="footer-col">
          <h4>快捷链接</h4>
          <ul>
            <li><a href="/about">关于我们</a></li>
            <li><a href="/products">课程中心</a></li>
            <li><a href="/cases">学员中心</a></li>
            <li><a href="/jobs">加入我们</a></li>
          </ul>
        </div>
        <div class="footer-col">
          <h4>产品服务</h4>
          <ul id="footerProducts">
            <li><a href="#">企业《规划管理》</a></li>
            <li><a href="#">规划导师</a></li>
            <li><a href="#">政易书院</a></li>
            <li><a href="#">家有易领</a></li>
          </ul>
        </div>
        <div class="footer-col">
          <h4>联系方式</h4>
          <ul>
            <li><a href="#" id="foot_address">贵阳市金清路6号</a></li>
            <li><a href="#" id="foot_email">contact@shiling2026.com</a></li>
            <li><a href="#" id="foot_phone">400-888-2026</a></li>
            <li><a href="#" id="foot_hours">周一至周五 9:00 - 18:00</a></li>
          </ul>
        </div>
              <div class="footer-col footer-qrcode">
          <h4>关注公众号</h4>
          <img id="foot_qrcode" class="qrcode-img" src="" alt="公众号二维码" style="display:none;">
          <p class="qrcode-label">微信扫码关注</p>
        </div>
</div>
      <div class="footer-bottom"></div>
    </div>
  </footer>

  <script>
    const API = '/api';
    const DEFAULT_ICONS = ['🏢', '🎓', '📖', '🏠', '💡', '🎯', '📊', '🌟'];

    async function fetchJSON(url) {
      try {
        const res = await fetch(url);
        const json = await res.json();
        if (Array.isArray(json.data)) return json.data;
        if (json.data?.list) return json.data.list;
        if (Array.isArray(json.data)) return json.data;
        return [];
      } catch (e) { return []; }
    }

    // 轮播
    let bannerIdx = 0, bannerLen = 0, bannerTimer = null;
    function updateBanner() {
      var slides = document.querySelectorAll('.banner-slide');
      if (!slides.length) return;
      var n = slides.length;
      var prev = (bannerIdx - 1 + n) % n;
      var next = (bannerIdx + 1) % n;
      slides.forEach(function(s, i) {
        s.className = 'banner-slide';
        if (i === bannerIdx) s.classList.add('center');
        else if (i === prev) s.classList.add('left');
        else if (i === next) s.classList.add('right');
        else s.classList.add(i < bannerIdx ? 'far-left' : 'far-right');
      });
      document.querySelectorAll('.banner-dots .dot').forEach(function(d, i) {
        d.classList.toggle('active', i === bannerIdx);
      });
    }
    window.slideNav = function(dir) {
      var n = document.querySelectorAll('.banner-slide').length;
      if (!n) return;
      bannerIdx = (bannerIdx + dir + n) % n;
      updateBanner();
      resetBannerTimer();
    };
    window.goSlide = function(i) {
      bannerIdx = i;
      updateBanner();
      resetBannerTimer();
    };
    function resetBannerTimer() {
      if (bannerTimer) clearInterval(bannerTimer);
      bannerTimer = setInterval(function() { slideNav(1); }, 4000);
    }
    function bannerClick(el) {
      var link = el.getAttribute("data-link");
      if (link) window.location.href = link;
    }

    async function loadBanners() {
      var list = await fetchJSON(API + '/banners/public');
      if (!list.length) return;
      var container = document.getElementById('bannerContainer');
      var dots = document.getElementById('bannerDots');
      container.innerHTML = list.map(function(b, i) {
        return '<div class="banner-slide" data-link="' + (b.linkUrl||'') + '" onclick="bannerClick(this)" style="cursor:pointer">' +
          (b.imageUrl ? '<img src="' + b.imageUrl + '" alt="' + (b.title||'') + '" draggable="false">' : '') +
          
        '</div>';
      }).join('');
      dots.innerHTML = list.map(function(_, i) {
        return '<div class="dot" onclick="goSlide(' + i + ')"></div>';
      }).join('');
      bannerLen = list.length;
      bannerIdx = 0;
      updateBanner();
      if (list.length > 1) resetBannerTimer();
    }

        // 产品
    function fmtDateRange(start, end) {
      if (!start) return '';
      const s = new Date(start), e = end ? new Date(end) : null;
      const sy = s.getFullYear(), sm = s.getMonth()+1, sd = s.getDate();
      if (!e) return sy+'年'+sm+'月'+sd+'日';
      const ey = e.getFullYear(), em = e.getMonth()+1, ed = e.getDate();
      if (sy === ey) return sy+'年'+sm+'月'+sd+'日-'+em+'月'+ed+'日';
      return sy+'年'+sm+'月'+sd+'日-'+ey+'年'+em+'月'+ed+'日';
    }

    async function loadProducts() {
      const list = await fetchJSON(API + '/products/public');
      const el = document.getElementById('productList');
      if (!list.length) {
        el.innerHTML = '<div class="empty"><div class="icon">📦</div><p>暂无课程</p></div>';
        return;
      }
      el.innerHTML = list.map((p) => {
        const dateStr = fmtDateRange(p.startDate, p.endDate);
        const addr = p.address || '';
        return `
        <div class="product-card" onclick="window.location.href='/product-detail?id=${p.id}'">
          ${p.coverImage ? `<div class="product-cover"><img src="${p.coverImage}" alt="${p.title}"></div>` : ''}
          <h3>${p.title}</h3>
          <div class="product-meta">
            ${dateStr ? `<div class="product-meta-item"><span class="meta-icon">📅</span><span>${dateStr}</span></div>` : ''}
            ${addr ? `<div class="product-meta-item"><span class="meta-icon">📍</span><span>${addr}</span></div>` : ''}
          </div>
          <span class="product-link">了解详情 →</span>
        </div>`;
      }).join('');
    }

    // 文章/动态
    async function loadNews() {
      const list = await fetchJSON(API + '/articles/public');
      const el = document.getElementById('newsList');
      if (!list.length) {
        el.innerHTML = '<div class="empty"><div class="icon">📰</div><p>暂无动态</p></div>';
        return;
      }
      el.innerHTML = list.slice(0, 6).map(a => {
        const date = a.createdAt ? new Date(a.createdAt).toLocaleDateString('zh-CN') : '';
        const cat = a.category?.name || '资讯';
        return `
          <div class="news-card" onclick="window.location.href='/article-detail?id=${a.id}'" style="cursor:pointer">
            <div class="news-img">
              ${a.coverImage ? `<img src="${a.coverImage}" alt="${a.title}">` : `<span class="placeholder">📰</span>`}
            </div>
            <div class="news-body">
              <div class="news-meta">
                <span>${date}</span>
                <span class="tag">${cat}</span>
              </div>
              <h3>${a.title}</h3>
              <p>${a.summary || ''}</p>
            </div>
          </div>
        `;
      }).join('');
    }

    // 搜索
    function doSearch() {
      const q = document.getElementById('searchInput').value.trim();
      if (q) window.location.href = '/search?q=' + encodeURIComponent(q);
    }

    // 加载设置
    // 加载设置（统计数据+联系方式）
    async function loadSettings() {
      try {
        const res = await fetch(API + '/settings/public?t=' + Date.now());
        const json = await res.json();
        const s = json.data || {};
        // 统计数字
        if (s.stat_num_1) document.getElementById('stat1').innerHTML = s.stat_num_1 + '<span class="stat-unit">+场</span>';
        if (s.stat_num_2) document.getElementById('stat2').innerHTML = s.stat_num_2 + '<span class="stat-unit">+场</span>';
        if (s.stat_num_3) document.getElementById('stat3').innerHTML = s.stat_num_3 + '<span class="stat-unit">+家</span>';
        if (s.stat_num_4) document.getElementById('stat4').innerHTML = s.stat_num_4 + '<span class="stat-unit">+人次</span>';
        if (s.stat_label_1) document.getElementById('stat1').nextElementSibling.textContent = s.stat_label_1;
        if (s.stat_label_2) document.getElementById('stat2').nextElementSibling.textContent = s.stat_label_2;
        if (s.stat_label_3) document.getElementById('stat3').nextElementSibling.textContent = s.stat_label_3;
        if (s.stat_label_4) document.getElementById('stat4').nextElementSibling.textContent = s.stat_label_4;
        // 更新联系方式
        if (s.contact_address) document.getElementById('foot_address').textContent = s.contact_address;
        if (s.contact_email) { var el = document.getElementById('foot_email'); el.textContent = s.contact_email; el.href = 'mailto:' + s.contact_email; }
        if (s.contact_phone) { var el2 = document.getElementById('foot_phone'); el2.textContent = s.contact_phone; el2.href = 'tel:' + s.contact_phone; }
        if (s.contact_hours) document.getElementById('foot_hours').textContent = s.contact_hours;
        if (s.qrcode_wechat) { var qrEl = document.getElementById('foot_qrcode'); if(qrEl) { qrEl.src = s.qrcode_wechat; qrEl.style.display = 'block'; } }
        window._settings = s;
      } catch(e) {}
    }


    // 导师团队
    async function loadTeam() {
      const list = await fetchJSON(API + '/teachers/public');
      const el = document.getElementById('teamGrid');
      if (!list.length) {
        el.innerHTML = '<div class="empty"><div class="icon">👨‍🏫</div><p>暂无导师信息</p></div>';
        return;
      }
      el.innerHTML = list.slice(0, 4).map(function(t) {
        var av = t.avatar
          ? '<img src="' + t.avatar + '" alt="' + (t.name||'') + '" style="width:100%;height:100%;object-fit:cover;border-radius:50%;">'
          : (t.name ? t.name.charAt(0) : '?');
        return '<a href="/teacher-detail?id=' + t.id + '" style="text-decoration:none;color:inherit;">' +
          '<div class="team-card-home"><div class="avatar">' + av + '</div>' +
          '<h4>' + (t.name||'') + '</h4>' +
          '<div class="role">' + (t.title||t.role||'') + '</div>' +
          '<p>' + (t.summary||t.description||'').replace(/\n/g,'<br>') + '</p></div></a>';
      }).join('');
    }

    loadSettings();
    loadBanners();
    loadProducts();
    loadNews();
    loadTeam();
  </script>
<script>
(function(){
  var btn = document.querySelector('.hamburger');
  if(btn){
    btn.addEventListener('click', function(){
      var links = document.querySelector('.nav-links');
      links.classList.toggle('open');
      btn.innerHTML = links.classList.contains('open') ? '&#10005;' : '&#9776;';
    });
  }
})();
</script>
<script src="/footer-init.js?v=1775875569"></script>
</body>
</html>
